import { setToken } from '@/utils/cookie'
// 获取原生token
export const getNativeToken = () => {
  let nativeToken = ''
  if (isIOS()) {
    if (
      typeof window.webkit !== 'undefined' &&
      typeof window.webkit.messageHandlers !== 'undefined' &&
      typeof window.webkit.messageHandlers.getToken !== 'undefined'
    ) {
      window.webkit.messageHandlers.getToken.postMessage(null)
    }

    // 处理iOS传递的参数
    function handleiOSParameter(parameter) {
      nativeToken = JSON.parse(parameter).access_token
      setToken(nativeToken)
    }
    // 注册iOS传递参数的回调函数
    window.energy = handleiOSParameter
  } else {
    // 使用全局函数或对象获取原生安卓的Token
    if (window.energy) {
      nativeToken = JSON.parse(window.energy.getToken()).access_token
    }
    setToken(nativeToken)
  }
}
// 401无权限通知原生返回登录页
export const sendUserUnauthorized = () => {
  if (isIOS()) {
    if (
      typeof window.webkit !== 'undefined' &&
      typeof window.webkit.messageHandlers !== 'undefined' &&
      typeof window.webkit.messageHandlers.sendUserUnauthorized !== 'undefined'
    ) {
      window.webkit.messageHandlers.sendUserUnauthorized.postMessage(null)
    }
  } else {
    window.energy && window.energy.sendUserUnauthorized()
  }
}

// 左上角返回通知原生
export const goPageBack = () => {
  if (isIOS()) {
    if (
      typeof window.webkit !== 'undefined' &&
      typeof window.webkit.messageHandlers !== 'undefined' &&
      typeof window.webkit.messageHandlers.goPageBack !== 'undefined'
    ) {
      window.webkit.messageHandlers.goPageBack.postMessage(null)
    }
  } else {
    window.energy && window.energy.goPageBack()
  }
}

const isIOS = () => {
  // 获取User-Agent字符串
  const userAgent = navigator.userAgent

  // 判断是否是iOS设备
  const isiOS = /iPhone|iPad|iPod/.test(userAgent)
  return isiOS
}
